#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Result/Nodal/NodalBase.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct GRID_WEIGHTData : public NodalBase
{
    SG::DataStructure::Common::Real m_MO[36]   = { 0 };  ///<
    SG::DataStructure::Common::Real m_S[9]     = { 0 };  ///<
    SG::DataStructure::Common::Real m_MX       = 0.0;    ///<
    SG::DataStructure::Common::Real m_XX       = 0.0;    ///<
    SG::DataStructure::Common::Real m_YX       = 0.0;    ///<
    SG::DataStructure::Common::Real m_ZX       = 0.0;    ///<
    SG::DataStructure::Common::Real m_MY       = 0.0;    ///<
    SG::DataStructure::Common::Real m_XY       = 0.0;    ///<
    SG::DataStructure::Common::Real m_YY       = 0.0;    ///<
    SG::DataStructure::Common::Real m_ZY       = 0.0;    ///<
    SG::DataStructure::Common::Real m_MZ       = 0.0;    ///<
    SG::DataStructure::Common::Real m_XZ       = 0.0;    ///<
    SG::DataStructure::Common::Real m_YZ       = 0.0;    ///<
    SG::DataStructure::Common::Real m_ZZ       = 0.0;    ///<
    SG::DataStructure::Common::Real m_I[9]     = { 0 };  ///<
    SG::DataStructure::Common::Real m_PIX      = 0.0;    ///<
    SG::DataStructure::Common::Real m_PIY      = 0.0;    ///<
    SG::DataStructure::Common::Real m_PIZ      = 0.0;    ///<
    SG::DataStructure::Common::Real m_Q[9]     = { 0 };  ///<
    SG::DataStructure::Common::Id   m_domainId = 0;      ///<
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const GRID_WEIGHTData& val1, const GRID_WEIGHTData& val2);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
